package com.toolbox.dal.model;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.toolbox.domain.AbstractBaseDO;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

/**
 * <p>
 * 菜单权限
 * </p>
 *
 * @author Mango
 * @since 2023-12-01
 */
@Setter
@Getter
@NoArgsConstructor
@AllArgsConstructor
@ToString(callSuper = true)
@TableName(autoResultMap = true, value = "infra_menu")
public class InfraMenuDO extends AbstractBaseDO<InfraMenuDO> {

    private static final long serialVersionUID = 1995110670832066049L;

    /**
     * 父ID
     */
    @TableField("parent_id")
    private Long parentId;

    /**
     * 中文名称
     */
    @TableField("name_cn")
    private String nameCn;

    /**
     * 英文名称
     */
    @TableField("name_en")
    private String nameEn;

    /**
     * 路由 path 属性值 若为空则按照url路径处理
     */
    @TableField("path")
    private String path;

    /**
     * 路由 name 属性值 若为空则按照url路径处理
     */
    @TableField("name")
    private String name;

    /**
     * 菜单路由 或 URL
     */
    @TableField("url")
    private String url;

    /**
     * 授权(多个用逗号分隔，如：user:list,user:create)
     */
    @TableField("permission")
    private String permission;

    /**
     * 类型：0-目录 1-菜单 2-按钮 3-iframe 4-外链
     */
    @TableField("type")
    private Integer type;

    /**
     * 图标
     */
    @TableField("icon")
    private String icon;

    /**
     * 是否在菜单显示：0-否 1-是
     */
    @TableField("is_show")
    private Integer isShow;

    /**
     * 是否显示在tab页签：0-否 1-是
     */
    @TableField("tab")
    private Integer tab;

    /**
     * 是否支持tab页签多开：0-否 1-是
     */
    @TableField("multiple")
    private Integer multiple;

    /**
     * 是否支持缓存：0-否 1-是
     */
    @TableField("keepalive")
    private Integer keepalive;

    /**
     * 排序
     */
    @TableField("sort")
    private Integer sort;

}
